package com.jmb.api.vo.project;

import com.baomidou.mybatisplus.annotation.TableField;
import com.jmb.api.model.entity.Project;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;

@Data
public class ProjectVo implements Serializable {
    @Schema(description = "项目id")
    private Integer projectId;
    /**
     * 项目名称
     */
    @NotBlank(message = "项目名称不能为空")
    @Schema(description = "项目名称")
    private String name;

    /**
     * 项目描述
     */

    @Schema(description = "项目描述")
    private String description;

    /**
     *
     */
    @NotBlank(message = "调试环境协议不能为空")
    @Schema(description = "调试环境协议")
    private String protocol;

    /**
     *
     */
    @NotNull(message = "调试环境端口不能为空")
    @Schema(description = "调试环境端口")
    private Integer port;

    /**
     * 项目地址
     */
    @NotBlank(message = "调试环境项目地址不能为空")
    @Schema(description = "调试环境项目地址")
    private String domain;

    /**
     *
     */
    @NotBlank(message = "dev环境协议不能为空")
    @Schema(description = "dev环境协议")
    private String devProtocol;

    /**
     *
     */
    @NotNull(message = "dev环境端口不能为空")
    @Schema(description = "dev环境端口")
    private Integer devPort;

    /**
     * 开发环境域名
     */
    @NotBlank(message = "dev环境域名不能为空")
    @Schema(description = "开发环境域名")
    private String devDomain;

    /**
     *
     */
    @NotBlank(message = "测试环境协议不能为空")
    @Schema(description = "测试环境协议")
    private String testProtocol;

    /**
     *
     */
    @NotNull(message = "测试环境端口不能为空")
    @Schema(description = "测试环境端口")
    private Integer testPort;

    /**
     * 测试环境域名
     */
    @NotBlank(message = "测试环境域名不能为空")
    @Schema(description = "测试环境域名")
    private String testDomain;

    /**
     *
     */
    @NotBlank(message = "预上线环境协议不能为空")
    @Schema(description = "预上线环境协议")
    private String stgProtocol;

    /**
     *
     */
    @NotNull(message = "预上线环境端口不能为空")
    @Schema(description = "预上线环境端口")
    private Integer stgPort;

    /**
     * 预上线环境域名
     */
    @NotBlank(message = "预上线环境域名不能为空")
    @Schema(description = "预上线环境域名")
    private String stgDomain;

    /**
     *
     */
    @NotBlank(message = "正式环境协议不能为空")
    @Schema(description = "正式环境协议")
    private String prodProtocol;

    /**
     *
     */
    @NotNull(message = "正式环境端口不能为空")
    @Schema(description = "正式环境端口")
    private Integer prodPort;

    /**
     * 正式环境域名
     */
    @NotBlank(message = "正式环境域名不能为空")
    @Schema(description = "正式环境域名")
    private String prodDomain;
}
